<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2007 XBRL International. All Rights Reserved. -->
<link:linkbase
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:gen="http://xbrl.org/2008/generic"
  xmlns:formula="http://xbrl.org/2008/formula"
  xmlns:variable="http://xbrl.org/2008/variable"
  xmlns:cf="http://xbrl.org/2008/filter/concept"
  xmlns:v="http://xbrl.org/2008/formula/conformance/variable"
  xmlns:concept="http://xbrl.org/formula/conformance/example" 
  xmlns:tf="http://xbrl.org/2008/filter/tuple"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="
  http://www.xbrl.org/2003/linkbase http://www.xbrl.org/2003/xbrl-linkbase-2003-12-31.xsd
  http://xbrl.org/2008/generic ../../core_schemas/generic-link.xsd
  http://xbrl.org/2008/formula ../../core_schemas/formula.xsd
  http://xbrl.org/2008/variable ../../core_schemas/variable.xsd
  http://xbrl.org/2008/filter/concept ../../core_schemas/concept-filter.xsd
  http://xbrl.org/2008/filter/tuple ../../core_schemas/tuple-filter.xsd
  ">

  <link:arcroleRef arcroleURI="http://xbrl.org/arcrole/2008/variable-set" xlink:href="../../core_schemas/variable.xsd#variable-set" xlink:type="simple"/>
  <link:arcroleRef arcroleURI="http://xbrl.org/arcrole/2008/variable-filter" xlink:href="../../core_schemas/variable.xsd#variable-filter" xlink:type="simple"/>
  <link:roleRef roleURI="http://www.xbrl.org/2008/role/link" xlink:href="../../core_schemas/generic-link.xsd#standard-link-role" xlink:type="simple"/>

  <gen:link xlink:type="extended"
    xlink:role="http://www.xbrl.org/2008/role/link">

    <formula:formula xlink:type="resource" xlink:label="formula" 
      value="$v:candidate" source="v:candidate" 
      aspectModel="dimensional" implicitFiltering="false"/>




    <variable:factVariable xlink:type="resource" xlink:label="variable-hello-fact" 
     bindAsSequence="false"/>
    <variable:variableArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-set" 
      xlink:from="formula" xlink:to="variable-hello-fact" order="1.0"
      name="v:hello"/>

    <cf:conceptName xlink:type="resource" xlink:label="filter-match-c1-concept-name">
      <cf:concept>
        <cf:qname>concept:c1</cf:qname>
      </cf:concept>
    </cf:conceptName>
    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="true"
      xlink:from="variable-hello-fact" xlink:to="filter-match-c1-concept-name" order="1.0"/>

    <tf:parentFilter xlink:type="resource" xlink:label="filter-match-t1-parent">
      <tf:parent><tf:qname>concept:t1</tf:qname></tf:parent>
    </tf:parentFilter>
    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="false"
      xlink:from="variable-hello-fact" xlink:to="filter-match-t1-parent" order="2.0"/>




    <variable:factVariable xlink:type="resource" xlink:label="variable-goodbye-fact" 
     bindAsSequence="false"/>
    <variable:variableArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-set" 
      xlink:from="formula" xlink:to="variable-goodbye-fact" order="2.0"
      name="v:goodbye"/>

    <cf:conceptName xlink:type="resource" xlink:label="filter-match-c2-concept-name">
      <cf:concept>
        <cf:qname>concept:c2</cf:qname>
      </cf:concept>
    </cf:conceptName>
    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="true"
      xlink:from="variable-goodbye-fact" xlink:to="filter-match-c2-concept-name" order="1.0"/>

    <tf:parentFilter xlink:type="resource" xlink:label="filter-match-t2-parent">
      <tf:parent><tf:qname>concept:t2</tf:qname></tf:parent>
    </tf:parentFilter>
    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="false"
      xlink:from="variable-goodbye-fact" xlink:to="filter-match-t2-parent" order="1.0"/>




    <variable:factVariable xlink:type="resource" xlink:label="variable-candidate-fact" 
     bindAsSequence="false"/>
    <variable:variableArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-set" 
      xlink:from="formula" xlink:to="variable-candidate-fact" order="3.0"
      name="v:candidate"/>

    <cf:conceptName xlink:type="resource" xlink:label="filter-match-c3-concept-name">
      <cf:concept>
        <cf:qname>concept:c3</cf:qname>
      </cf:concept>
    </cf:conceptName>
    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="true"
      xlink:from="variable-candidate-fact" xlink:to="filter-match-c3-concept-name" order="1.0"/>

    <tf:siblingFilter xlink:type="resource" xlink:label="filter-match-sibling"
    variable="v:goodbye"/>
    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="false"
      xlink:from="variable-candidate-fact" xlink:to="filter-match-sibling" order="2.0"/>

    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="false"
      xlink:from="variable-candidate-fact" xlink:to="filter-match-t2-parent" order="3.0"/>

    <tf:locationFilter xlink:type="resource" xlink:label="filter-match-location" 
      variable="v:hello"
      location="../../concept:c1" />
    <variable:variableFilterArc xlink:type="arc" xlink:arcrole="http://xbrl.org/arcrole/2008/variable-filter" 
      complement="false" cover="true"
      xlink:from="variable-candidate-fact" xlink:to="filter-match-location" order="4.0"/>

  </gen:link>

</link:linkbase>
